Profiling Dependence Vectors for Loop Parallelization
نویسندگان
چکیده
A dependence relation between two data references is linear if it generates dependence vectors that are linear functions of the loop indices. A linear dependence relation often induces a large number of dependence vectors. Empirical studies also show that linear dependencies often intermix with uniform dependencies in loops [5, 6]. These factors make it difficult to analyze such loops and extract the inherit parallelism. In this paper, we propose to manipulate such dependencies in the dependence vector space and summarize the large number of dependence vectors with their convex hull. The convex hull, as a profile of the dependence vectors, can be used to deduce many important properties of the vectors. We will show how to find the convex hull and then apply it to loop parallelization. The proposed approach will be compared with other schemes.
منابع مشابه
A Basis Approach to Loop Parallelization and Synchronisation
Loop transformation is a crucial step in parallelizing compilers. We introduce the concept of positive coordinate basis for deriving loop transformations. The basis serves to find proper loop transformations to change the dependence vectors into the desired forms. We demonstrate how this approach can systematically eztract maximal outer loop parallelism. Based on the concept, we can also constr...
متن کاملDynamic and Speculative Polyhedral Parallelization of Loop Nests Using Binary Code Patterns
Speculative parallelization is a classic strategy for automatically parallelizing codes that cannot be handled at compile-time due to the use of dynamic data and control structures. Another motivation of being speculative is to adapt the code to the current execution context, by selecting at run-time an efficient parallel schedule. However, since this parallelization scheme requires on-the-fly ...
متن کاملOnline Dynamic Dependence Analysis for Speculative Polyhedral Parallelization
We present a dynamic dependence analyzer whose goal is to compute dependences from instrumented execution samples of loop nests. The resulting information serves as a prediction of the execution behavior during the remaining iterations and can be used to select and apply a speculatively optimizing and parallelizing polyhedral transformation of the target sequential loop nest. Thus, a parallel l...
متن کاملSemantic-Driven Parallelization of Loops Operating on User-Defined Containers
We describe ROSE, a C++ infrastructure for source-to-source translation, that provides an interface for programmers to easily write their own translators for optimizing user-defined high-level abstractions. Utilizing the semantics of these high-level abstractions, we demonstrate the automatic parallelization of loops that iterate over user-defined containers that have interfaces similar to the ...
متن کاملOn Effective Execution of Nonuniform DOACROSS Loops
It is extremely difficult to parallelize DOACROSS loops with non-uniform loop-carried dependences. In this paper, we present a static scheduling scheme with an accompanying synchronization strategy that can execute such DOACROSS loops effectively and efficiently. Our approach uses one of the parallelization techniques called Dependence Uniformization, which finds a small set of uniform dependen...
متن کامل